# 推导式
# 使用一个表达式 创建一个数据序列

# 用循环赋值
# list1 = []                    # 创建一个空的列表
# for i in range(1,11):         # 用循环控制输入的次数 与 输入的元素
#     list1.append(i)
# print(list1)                  # 打印该列表

# 推导式   可以在列表 元组 集合内直接使用表达式
# 格式 [变量 （关于变量的）循环推导式]

# list1 = [i for i in range(1,11)]
# print(list1)
#
# list1 = [i for i in range(-10,11,1)]     # 循环推导式中添加了关于步长的控制
# print(list1)
#
# list1 = [i for i in range(-10,11,2)]     # 设置循环步长为 2
# print(list1)

# 和 if 语句相结合
# list1 = [i for i in range(-10,11,1) if i%2==0]     # 推导式中除了可以添加循环语句 同时 还能结合判断语句
# print(list1)

# 推导式可以是多重结构
# 依靠循环直接实现
# list1 = []
# for i in range(1,3):
#     for j in range(1,4):
#         list1.append((i,j))         # 这是在列表中添加元组
# print(list1)
# 依靠推导式来实现
# list1 = [(i,j) for i in range(1,3) for j in range(1,4)]
# print(list1)

# 字典推导
# dict1 = {i:i**2 for i in range(1,5)}
# print(dict1)
# 列表合并为字典 注意：由于字典是按照键值对存在 那么键key与值value应该是数量一致的
# list1 = ['name','age','gender','id']
# list2 = ['张三',18,'man','1001']
# dict1 = {list1[i]:list2[i] for i in range(len(list1))}
# print(dict1)

# 提取字典中的目标数据
# goodsCount = {'dell':10,'apple':20,'ibm':25,'shenzhou':50,}
# print(goodsCount)
#
# dict1 = {k:v for k,v in goodsCount.items() if v>=20}   # 写出字典格式 {变量1：变量2 （包含两个变量的推导式 并结合判断语句）}
# print(dict1)

# 集合推导式
# list1 = [1,2,3,4]
# set1 = {i**2 for i in list1}
# print(sorted(set1))                       # 实现集合内的元素按照从小到大的排列输出